﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using LiveTiss.Schemas;
using LiveTiss.Classes;

namespace LiveTiss.Guias
{
    public partial class GuiaSolicitacaoProrrogacao : UserControl
    {
        #region Guia

        public ct_guiaSolicitacaoProrrogacao Guia
        {
            get { return (ct_guiaSolicitacaoProrrogacao)GetValue(GuiaProperty); }
            set { SetValue(GuiaProperty, value); }
        }

        public static readonly DependencyProperty GuiaProperty =
            DependencyProperty.Register("Guia", typeof(ct_guiaSolicitacaoProrrogacao), typeof(GuiaSolicitacaoProrrogacao), new PropertyMetadata(null));
        #endregion

        public GuiaSolicitacaoProrrogacao()
        {
            this.DataContext = this;
            this.InitializaValues();
            InitializeComponent();
        }

        private void InitializaValues()
        {
            if (this.Guia == null)
            {
                this.Guia = new ct_guiaSolicitacaoProrrogacao()
                {
                    identificacaoProrrogacao = new ct_cabecalhoGuia()
                    {
                        _dataEmissaoGuia = Util.EmptyDate,
                        dataEmissaoGuia = Util.EmptyDate,
                        identificacaoFontePagadora = new ct_cabecalhoGuiaIdentificacaoFontePagadora()
                        {
                            ItemElementName = ItemChoiceType1.cnpjFontePagadora,
                            ItemValue = string.Empty
                        },
                        LogoPrestadora = new byte[] { },
                        numeroGuiaOperadora = string.Empty,
                        numeroGuiaPrestador = string.Empty
                    },
                    identificacaoGuiaReferencia = new ct_cabecalhoGuia()
                    {
                        _dataEmissaoGuia = Util.EmptyDate,
                        dataEmissaoGuia = Util.EmptyDate,
                        identificacaoFontePagadora = new ct_cabecalhoGuiaIdentificacaoFontePagadora()
                        {
                            ItemElementName = ItemChoiceType1.cnpjFontePagadora,
                            ItemValue = string.Empty
                        },
                        numeroGuiaOperadora = string.Empty,
                        numeroGuiaPrestador = string.Empty
                    },
                    dadosBeneficiario = new ct_beneficiario()
                    {
                        identificadorBeneficiario = new byte[] { },
                        nomeBeneficiario = string.Empty,
                        nomePlano = string.Empty,
                        numeroCarteira = string.Empty,
                        numeroCNS = string.Empty,
                        validadeCarteira = Util.EmptyDate,
                        validadeCarteiraSpecified = false
                    },
                    dadosSolicitante = new ct_solicitante()
                    {
                        contratado = new ct_contratadoSolicitante()
                        {
                            enderecoContratado = new ct_endereco()
                            {
                                cep = string.Empty,
                                codigoIBGEMunicipio = string.Empty,
                                codigoUF = st_UF.AC,
                                complemento = string.Empty,
                                logradouro = string.Empty,
                                municipio = string.Empty,
                                numero = string.Empty,
                                tipoLogradouro = st_tipoLogradouro.Item001
                            },
                            identificacao = new ct_identificacaoPrestador()
                            {
                                ItemValue = string.Empty,
                                ItemElementName = ItemChoiceType2.CNPJ
                            },
                            nomeContratado = string.Empty,
                            numeroCNES = string.Empty
                        },
                        profissional = new ct_identificacaoProfissional()
                        {
                            cbos = st_CBOS.Item000000,
                            cbosSpecified = false,
                            conselhoProfissional = new ct_conselhoProfissional()
                            {
                                numeroConselho = string.Empty,
                                siglaConselho = st_conselhoProfissional.COREN,
                                ufConselho = st_UF.AC
                            },
                            nomeProfissional = string.Empty
                        }
                    },
                    diarias = new ct_diariaProrrogacao()
                    {
                        quantidadeDiaria = 0,
                        tipoAcomodacao = st_tipoAcomodacao.Item1
                    },
                    indicacaoClinica = string.Empty,
                    observacao = string.Empty,
                    OPMsSolicitadas = new List<ct_OPMSolicitadasOPMSolicitada>(),
                    procedimentosExamesSolicitados = new List<ct_procedimentosSolicitadosProcedimentoSolicitado>(),
                    responsavelAutorizacao = string.Empty
                };
            }
        }
    }
}
